Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie

Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:04-10-2023

Inwerkingtreding:04-10-2023




Bekijk bron...

4.1.0 Gemiddelde contractomvang personeel

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 4.1 
2# Parameters: $(kwartaal)
3# Ontologie: versie 2.0.0 of nieuwer
4
5PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
6PREFIX onz-g: <http://purl.org/ozo/onz-g#>
7PREFIX onz-org: <http://purl.org/ozo/onz-org#>
8PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
9PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
10
11SELECT 
12	?vestiging
13	(SUM(?contractuele_uren_kwartaal * ?zorg)/SUM(?dagen_indicator) AS ?zorg_gerelateerd)
14	(SUM(?contractuele_uren_kwartaal * ?niet_zorg)/SUM(?dagen_indicator) AS ?niet_zorg_gerelateerd)
15WHERE { 
16    # selecteer kwartaal 
17    BIND($(kwartaal) AS ?kwartaal)
18    BIND(
19        IF(?kwartaal = 'Q1', '2022-01-01'^^xsd:date, 
20        IF(?kwartaal = 'Q2', '2022-04-01'^^xsd:date,
21        IF(?kwartaal = 'Q3', '2022-07-01'^^xsd:date,
22        IF(?kwartaal = 'Q4', '2022-10-01'^^xsd:date, 
23        '')))) AS ?start_periode)
24    BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode)
25    
26    # selecteer overeenkomst met start en eind en filter binnen kwartaal
27	?overeenkomst 
28    	a onz-pers:WerkOvereenkomst ;
29        onz-g:hasPart ?omvang ;
30        onz-g:isAbout ?locatie ;
31        onz-g:startDatum ?overeenkomst_start .
32    OPTIONAL { ?overeenkomst onz-g:eindDatum ?eind_overeenkomst }
33    FILTER (?overeenkomst_start <= ?eind_periode && (!BOUND(?overeenkomst_eind) || ?overeenkomst_eind >= ?start_periode))
34
35    # selecteer contractomvang
36    ?omvang
37    	a onz-pers:ContractOmvang ;
38    	onz-g:isAbout ?omvang_waarde .
39	?omvang_waarde
40        onz-g:hasDataValue ?omvang_waarde_getal ;
41        onz-g:hasUnitOfMeasure ?omvang_waarde_eenheid .
42  	?omvang_waarde_eenheid
43    	onz-pers:hasDenominatorQualityValue onz-g:Week ;
44     	onz-pers:hasNumeratorQualityValue onz-g:Uur ;
45      	onz-g:hasDataValue ?omvang_waarde_factor .
46    
47    # bepaal de vestiging waar de werkzaamheden verricht worden volgens de werkovereenkomst
48    {
49        ?locatie onz-g:partOf* ?vestiging_uri .
50        ?vestiging_uri 
51            a onz-org:Vestiging ;
52            onz-g:identifiedBy ?vest_nr.
53        ?vest_nr a onz-org:Vestigingsnummer ;
54            onz-g:hasDataValue ?vestiging .
55    } UNION {
56        #Includeer ook de organisatie als geheel en label deze als vestiging
57        ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri .
58        ?organisatie_uri 
59            a onz-g:Business ;
60            rdfs:label ?organisatie .
61        BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging)
62    }
63	
64    # definieer of de verloonde uren voor een zorgfunctie zijn
65    OPTIONAL {
66        ?overeenkomst onz-g:isAbout ?zorgfunctie .
67        ?zorgfunctie a onz-pers:ZorgverlenerFunctie
68    }
69    
70	# maak variabele waarmee of de verloonde uren vermenigvuldigd kunnen worden 
71    BIND(IF(BOUND(?zorgfunctie),1,0) AS ?zorg)
72	BIND(IF(?zorg=1,0,1) AS ?niet_zorg)
73    
74    # bereken aantal uren per week en zet dit om naar kwartaal uren
75    BIND((?omvang_waarde_getal * ?omvang_waarde_factor) AS ?uren_per_week)
76   	BIND((47*?uren_per_week/4) AS ?contractuele_uren_kwartaal)
77    
78    # bepaal aantal dagen overeenkomst in rapportageperiode
79    BIND(IF(?overeenkomst_start < ?start_periode, ?start_periode, ?overeenkomst_start) AS ?start_indicator)
80    BIND(IF(?overeenkomst_eind > ?eind_periode || !BOUND(?overeenkomst_eind), ?eind_periode, ?eind_overeenkomst) AS ?eind_indicator)
81    BIND (
82        (360 * (YEAR(?eind_indicator) - YEAR(?start_indicator))) +
83        (30 * (MONTH(?eind_indicator) - MONTH(?start_indicator))) +
84        IF(
85            (DAY(?eind_indicator) - DAY(?start_indicator)) < 29, (DAY(?eind_indicator) - DAY(?start_indicator)), 29) + 1
86        AS ?dagen_indicator)
87} 
88GROUP BY ?vestiging

Heb je feedback?

Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!